package com.qianxun.spider.http;

/**
 * @author: huwei
 * @date: 2020/7/15 11:06
 * @version: 1.0.0
 */
public interface HttpProxyPool {
    /**
     * 获取一个代理信息 ，当代理服务为空或失败时，则使用本机ip直接访问
     * @return
     */
    HttpProxy next();

    /**
     * 重试次数，即当前代理服务不可用时，重新获取代理尝试的次数；
     * @return
     */
    int retry();

    /**
     * 是否启动本地重试，即当代理重试次数全部失败后，从本地再进行请求尝试，以此来规避代理服务不可用造成的请求失败问题
     * @return
     */
    boolean localRetry();

    /**
     * 优先使用本地服务地址
     * @return
     */
    boolean localPriority();

    /**
     * 标记该代理信息代理失败
     * @param httpProxy
     */
    void makeFailure(HttpProxy httpProxy);

    /**
     * 代理池是否为空
     * @return
     */
    boolean isEmpty();

    /**
     * 代理池ip数量
     * @return
     */
    int size();
}
